package com.hgts.controller;


import com.hgts.common.R;
import com.hgts.pojo.Likes;
import com.hgts.pojo.User;
import com.hgts.pojo.dto.UserDto;
import com.hgts.service.IUserService;
import com.hgts.utils.RegexUtils;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;


/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 凡哥哥
 * @since 2023-05-09
 */
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private IUserService userService;
    /*登录*/
    @GetMapping
    public R<User> login(@RequestBody User user){

        return userService.login(user);
    }


    /*注册*/
    @GetMapping("/code")
    public R<String> sendCode(String phone) {
        // TODO 发送短信验证码并保存验证码
        //1.校验手机号
        if (RegexUtils.isPhoneInvalid(phone)) {
            //2.如果不符合，返回错误信息
            return R.error("手机号格式错误!");
        }
        return userService.sendCode(phone);
    }

    @PostMapping("/register")
    public R<String> register(@RequestBody User user){
        return userService.register(user);
    }

    /**
     * 用户退出
     */
    @GetMapping("/logout")
    public R<String> logout(String token){
        userService.exit(token);
        return R.success("退出成功");
    }
    /**
     * 用户点赞状态
     */
    @GetMapping("/likes/{userId}")
    public R<List<Likes>> likes(@PathVariable Long userId){
        //获取点赞状态
        if (userId != null){
            return R.success(userService.likes(userId));
        }
        return R.error("用户未登录");
    }
}

